package talayaco.manager.impl;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import talayaco.dao.ClienteDAO;
import talayaco.dao.impl.ClienteDAOImpl;
import talayaco.manager.GestionClientesMAN;
import talayaco.utils.MapToVo;
import talayaco.vo.ClienteVO;

public class GestionClientesMANimpl implements GestionClientesMAN {

	private static ClienteDAO clienteDAO = new ClienteDAOImpl();

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.manager.GestionClientesMAN#insertCliente(java.util.Map)
	 */
	public void insertCliente(Map<String, String> cliente) throws Exception {
		clienteDAO.insertCliente(cliente);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.manager.GestionClientesMAN#updateCliente(java.util.Map)
	 */
	public void updateCliente(Map<String, String> cliente) throws Exception {

		clienteDAO.updateCliente(cliente);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.manager.GestionClientesMAN#deleteCliente(java.lang.Long)
	 */
	public void deleteCliente(String nombre) throws Exception {
		clienteDAO.deleteCliente(nombre);
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.manager.GestionClientesMAN#getClienteById(java.lang.Long)
	 */
	public Map<String, String> getClienteByNombre(String nombre)
			throws Exception {

		Map<String, String> datosCliente = new HashMap<String, String>();
		datosCliente = (Map<String, String>) clienteDAO
				.getClienteByNombre(nombre);
		return datosCliente;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.manager.GestionClientesMAN#getClientesVO()
	 */
	public List<ClienteVO> getClientesVO() throws Exception {
		List<Map<String, String>> clientes = clienteDAO.getClientes();
		List<ClienteVO> clientesVO = new ArrayList<ClienteVO>();
		ClienteVO clienteVO;
		for (Map<String, String> cliente : clientes) {
			clienteVO = MapToVo.mapToClienteVO(cliente);
			clientesVO.add(clienteVO);
		}
		return clientesVO;

	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.manager.GestionClientesMAN#getClientes()
	 */
	public List<Map<String, String>> getClientes() throws Exception {

		List<Map<String, String>> datosCliente = new ArrayList<Map<String, String>>();
		datosCliente = (List<Map<String, String>>) clienteDAO.getClientes();
		return datosCliente;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see talayaco.manager.GestionClientesMAN#existeCliente(java.lang.String)
	 */
	public Boolean existeCliente(String nombre) throws Exception {

		String existe = new String();
		existe = (String) clienteDAO.existeCliente(nombre);
		if (existe.equals("1"))
			return true;
		else
			return false;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see
	 * talayaco.manager.GestionClientesMAN#validarMovimientosCliente(java.lang
	 * .String)
	 */
	public Boolean validarMovimientosCliente(String nombreCliente)
			throws Exception {
		Long cantidad = clienteDAO.validarMovimientosCliente(nombreCliente);
		if (cantidad == 0) {
			return Boolean.FALSE;
		} else
			return Boolean.TRUE;
	}

}
